// physical node: a master crate serving as both mc and cmc
// Created: Nov. 6, 2024 by SUN Yazhou, asia.rabbit@163.com

#ifndef SMC_h
#define SMC_h

#include "PN.h"

class SMC : public PN{
public:
  SMC(const YAML::Node &n);
  virtual ~SMC();

  virtual void Ln() override; // configure all the lns
  LN *RiData() const{ return fRiData; }
  LN *MiCmd() const{ return fMiCmd; }
  LN *RiSta() const{ return fRiSta; }

protected:
  // NOTE that each rcv or tsm only ports to ONE tsm or rcv //
  // the interface to the other crates //
  LN *fRiData; // reduce_index: data stream
  LN *fMiCmd; // map_index: cmd stream
  LN *fRiSta; // reduce_index: status stream
};

#endif
